/*
* (c) 2014 University of Applied Sciences, Karlsruhe
* Project "Segmentation of depth data of a plenoptic camera"
* summer semester 2014
*
* edge_detection_2d.h
* This file contains functions to perform edge detection on a color image (e.g. Canny edge detector).
*/
#ifndef _EDGE_DETECTION_2D_H_
#define _EDGE_DETECTION_2D_H_

#include <cassert>
#include <ostream>
#include <vector>

#include <Eigen/Dense>
#include <opencv2/opencv.hpp>
#include <pcl/common/distances.h>

#include "sgBase/geometrics/line_3d.h"


using namespace sgBase;

namespace sgMain
{
	namespace EdgeDetection2D
	{
		/**
		Performs the canny edge detection on the color image.
		\param[in] colorImage The color image.
		\param[in] lowerThreshold The detection threshold of the Canny edge detector.
		\return A binary edge image of identical size, created out of the color image.
		*/
		cv::Mat CannyEdgeDetector(const cv::Mat &sourceImage, int lowerTreshold);
	};
}

#endif